//import $ from 'jquery'

var weione_weixin={
    "appId": "wx9aa587419c8b061a",
    "timestamp": "",
    "nonceStr": "",
    "signature": ""
}

var weione_share={
	title : "",
	desc : "",
	link :"",
	imgUrl : ""
}

function S4() {
   return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}
function guid() {
   return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()).replace(/-/g, "")+""+new Date().getTime();;;
}

var weione_basePath=window.location.protocol+"//"+window.location.host;//当前域名
if(weione_basePath.indexOf('10.0.0')>=0||weione_basePath.indexOf('192.168.')>=0){
	weione_basePath="http://zp-www.t.hnic.com.cn";//http://zp-www.t.hnic.com.cn/wxjs/zp/jsapi_ticket.js
}
var jsapi_ticket_url=weione_basePath+'/wxjs/zp/jsapi_ticket.js'
console.log('jsapi_ticket_url：'+jsapi_ticket_url);




//var weione_basePath="http://wx.yutong.com"
//console.log("weione_basePath:"+weione_basePath);//weione_basePath:http://weifan.wangyukeji.com
//console.log('=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>weione_basePath>>>>'+weione_basePath);
function  isWxTest(){
	if(weione_basePath.indexOf('127.0.0.1')>=0||weione_basePath.indexOf('192.168.')>=0||weione_basePath.indexOf('localhost')>=0){
		 console.log('当前属于测试模式'+'=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>weione_basePath>>>>'+weione_basePath);
		return true;
	}else{
		return false;
	}

}
 isWxTest();

var _wxTool=null;//全局对象，如果链接参数中有wxid=*,将会自动初始化，否则需要自行触发
function WxTool(wxid,ver){
      this.wxid=wxid;
	  this.user=null;
	   this.ver=ver;//版本

	  this.networkType=null;
	  this.accessId=null;
	  this.shareUrl=null;//分享的url链接


	  this.member=null;//会员基本信息

}//end of fucntion

WxTool.prototype.getVer=function(){
	if(null==this.ver||null==undefined.ver) {
		var dv='v1';
		console.log("the ver is default  "+dv);
		return dv;
	}else{

		return this.ver;
	}

}


////是否登录
//WxTool.prototype.isLogin=function(){
//	this.auth();
//	//this.getUser();
//  if(null==this.getMember() ){
//       console.log('need login');
//       return false;
//  }else{
//  	return true;
//  }
//
//}


////检查登录状态（通常在个人信息相关页面使用），如果未登陆则，跳转至登陆页面
//WxTool.prototype.loginCheck=function(){
//	this.auth();
//	//this.getUser();
//  if(null==this.getMember() ){
//       console.log('need login');
//      // try{
//       	    //this.$vux.toast.text('亲，需要先登录哦', 'middle');   会报错
//      // }catche(e){
//       	// console.log("this.$vux.toast.text('亲，需要先登录哦', 'middle')");
//      // }
//       this.$router.push('login')
//  }
//}
//不建议使用
WxTool.prototype.getAccessToken=function(){
	 return this.getOpenidToken();

}


WxTool.prototype.getFakeUser=function(){

	return {
		"authflag": "1",
		"city": "郑州",
		"country": "中国",
		"groupid": 0,
		"headimgurl": "",
		"language": "zh_CN",
		"latitude": 0,
		"longitude": 0,
		"nickname": "微信测试昵称",
		"openid": "fake-openid",
		"precision": 0,
		"privilege": [],
		"province": "河南",
		"remark": "",
		"remarkname": "",
		"sex": 1,
		"subscribe": 1,
		"subscribeTime": "2017-06-28 18:26:24",
		"subscribe_time": 1498645584,
		"tagid_list": [],
		"unionid": "fake-unionid"
	};
}//end of function



WxTool.prototype.getUser=function(type){
   if(isWxTest()){
	  console.log("返回伪造的用户信息");

	  return this.getFakeUser();
   }



   if(null!=this.user) {
   	  console.log("直接返回user信息");
   	  //headimgurl
   	  //http://wx2.yutong.com/thirdwx/mmopen/mxKxVO0BssQ6GRIdgUQNYicP7QBXtGQYYk4bhz7lYYjhiaHoPcjPxe0cF4rhaF7RWlPz0cqX42A5BS8Qt09icbryUL6ElN9aUu3/132
   	 // this.user.headimgurl=this.user.headimgurl.replace('http://thirdwx.qlogo.cn','http://wx2.yutong.com/thirdwx');
   	  return this.user;
   }else{
        	var openidToken= this.getOpenidToken();
			console.log("验证是否已经微信授权-openidToken:"+openidToken);
			//alert("openidToken=="+openidToken);
			var user_tmp=null;

		   var url = '/wxhtml/v2/wxfront/get-user-info.thtml?r='+Math.random();
		   let param={'openidToken':openidToken,'random':Math.random()};
		   if('auto'==type){//调用接口刷新
			   param={'openidToken':openidToken,'type':'auto','random':Math.random()};
		   }
		 var curr_obj=this;
     	 $.ajax({
						type: "POST" ,
						//contentType: "application/json", 默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
						url: url,
						async:false,//async:false, false 非异步
						data: param ,
						timeout: 30000, //超时时间：30秒
						dataType: 'json',
						error: function (XMLHttpRequest, textStatus, errorThrown){
						     console.log('textStatus：'+textStatus);//js 日志
							//TODO: 处理status， http status code，超时 408
							// 注意：如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能
							//是"timeout", "error", "notmodified" 和 "parsererror"。
						},
						success: function(ret) {
							//alert(ret.code);
						     if("0"!=ret.code){//重新微信授权

								 user_tmp=null;

						   }else{

								//alert('ok');
								 //console.log("ok:"+openidToken);
								//alert(JSON.stringify(ret.data.user));
								 try{
									 user_tmp=ret.data.user;
									// user_tmp.headimgurl=user_tmp.headimgurl.replace('http://thirdwx.qlogo.cn','http://wx2.yutong.com/thirdwx');
									  //console.log("成功获取用户信息:");
								 }catch(e){
									 console.log("获取用户信息异常:"+e);
								 }


						   }//end of if-else
						}//end of success
		    });//end of jQuery.ajax
		   //alert("先弹出？");
		    curr_obj.user=user_tmp;
		    return user_tmp;


   }

}
/**
     调用方法
	 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
	 2._wxTool.auth();
	 3.稍后（由于是异步调用）可通过_wxTool.getUser() 获取json用户信息

	  检验用户授权情况，如果没授权则根据target 跳转 (可选，默认情况下是当前链接 )
	* @param target (可选，默认情况下是当前链接 )目标链接地址（未编码），如：http://wwww.interentyu.com
	  @param async true 异步（默认）（不会立刻返回值，需要以后根据_wxTool.getUser() 获取 ）, false 非异步，可以直接返回信息
    * @return async==false时方返回信息
*/
WxTool.prototype.auth=function(target,async){

		  if(isWxTest()){
			  console.log("返回伪造的用户信息");
			  return this.getFakeUser();
		   }

            var retval=null;
            var wxid=this.wxid;

			//console.log("验证是否已经微信授权begin"+wxid  +"&async="+async);
			if(undefined==async||null==async){//||''==async 对于boolen值 false==''
				//console.log("??");
				async=true;
			}
		//	console.log("验证是否已经微信授权begin"+wxid  +"&async="+async);
			var openidToken= this.getOpenidToken();
			//console.log("验证是否已经微信授权-openidToken:"+openidToken);

		  var curr_obj=this;

		   var url = '/wxhtml/v2/wxfront/get-user-info.thtml?r='+Math.random();
		   console.log("验证是否已经微信授权-openidToken:"+openidToken+"url"+url);
           var param={'openidToken':openidToken,'random':Math.random()};
			var auth_url=this.getAuthUrl(openidToken,target);
		   $.ajax({
						type: "POST" ,
						//contentType: "application/json", 默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
						url: url,
						async:async,//async:false, false 非异步
						data: param ,
						timeout: 30000, //超时时间：30秒
						dataType: 'json',
						error: function (XMLHttpRequest, textStatus, errorThrown){
						     console.log('textStatus：'+textStatus);//js 日志
							//TODO: 处理status， http status code，超时 408
							// 注意：如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能
							//是"timeout", "error", "notmodified" 和 "parsererror"。
						},
						success: function(ret) {
						     if("0"!=ret.code){//重新微信授权
//									alert("重新授权");
								   console.log("auth_url："+auth_url);
								 //alert();
								 //	return;
								  window.location.href=auth_url;
								  retval=false;

						   }else{

								//alert('ok');
								 console.log("ok:"+openidToken);

								 try{
//								 	alert("用户信息："+ret.data.user);
									 curr_obj.user=ret.data.user;
									 // console.log("成功获取用户信息_wxTool.getUser():"+curr_obj.getUser());
								 }catch(e){
									 console.log("获取用户信息异常:"+e);
								 }
								   retval=true;

								  //console.log("获取会员信息");
								 // curr_obj.getMember();//

						   }//end of if-else
						}//end of success
		    });//end of jQuery.ajax

			if(false==async){
			    console.log('同步调用返回值'+retval);//js 日志
				return 	retval;
			}

 };//end of auth


/**
     调用方法
	 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
	 2._wxTool.auth();
	 3.稍后（由于是异步调用）可通过_wxTool.getUser() 获取json用户信息

	  检验用户授权情况，如果没授权则根据target 跳转 (可选，默认情况下是当前链接 )
	* @param target (可选，默认情况下是当前链接 )目标链接地址（未编码），如：http://wwww.interentyu.com
	  @param async true 异步（默认）（不会立刻返回值，需要以后根据_wxTool.getUser() 获取 ）, false 非异步，可以直接返回信息
    * @return async==false时方返回信息
*/
WxTool.prototype.auth2=function(target,async){
 // alert();

		  if(isWxTest()){
			  console.log("返回伪造的用户信息");

			  return this.getFakeUser();
		   }

            var retval=null;
            var wxid=this.wxid;

			//console.log("验证是否已经微信授权begin"+wxid  +"&async="+async);
			if(undefined==async||null==async){//||''==async 对于boolen值 false==''
				//console.log("??");
				async=true;
			}
		//	console.log("验证是否已经微信授权begin"+wxid  +"&async="+async);
			var openidToken= this.getOpenidToken();
			//console.log("验证是否已经微信授权-openidToken:"+openidToken);

		  var curr_obj=this;

		   var url = '/wxhtml/v2/wxfront/get-user-info.thtml?r='+Math.random();
		   console.log("验证是否已经微信授权-openidToken:"+openidToken+"url"+url);
           var param={'openidToken':openidToken,'random':Math.random()};
			var auth_url=this.getAuthUrl2(openidToken,target);
		    $.ajax({
						type: "POST" ,
						//contentType: "application/json", 默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
						url: url,
						async:async,//async:false, false 非异步
						data: param ,
						timeout: 30000, //超时时间：30秒
						dataType: 'json',
						error: function (XMLHttpRequest, textStatus, errorThrown){
						     console.log('textStatus：'+textStatus);//js 日志
							//TODO: 处理status， http status code，超时 408
							// 注意：如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能
							//是"timeout", "error", "notmodified" 和 "parsererror"。
						},
						success: function(ret) {
						     if("0"!=ret.code){//重新微信授权
//									alert("重新授权");
								   console.log("auth_url："+auth_url);
								 //alert();
								 //	return;
								  window.location.href=auth_url;
								  retval=false;

						   }else{

								//alert('ok');
								 console.log("ok:"+openidToken);

								 try{
//								 	alert("用户信息："+ret.data.user);
									 curr_obj.user=ret.data.user;
									 // console.log("成功获取用户信息_wxTool.getUser():"+curr_obj.getUser());
								 }catch(e){
									 console.log("获取用户信息异常:"+e);
								 }
								   retval=true;

								  //console.log("获取会员信息");
								 // curr_obj.getMember();//

						   }//end of if-else
						}//end of success
		    });//end of jQuery.ajax

			if(false==async){
			    console.log('同步调用返回值'+retval);//js 日志
				return 	retval;
			}

 };//end of auth



/**
     调用方法
	 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
	 2._wxTool.getAuthUrl(openidToken,target);


	  获取授权链接地址
	* @param openidToken 用户token
	  @param target (可选，默认情况下是当前链接 )目标链接地址（未编码），如：http://wwww.interentyu.com
    * @return 授权url地址
*/
WxTool.prototype.getAuthUrl=function(openidToken,target){
			var auth_url=weione_basePath+'/wxhtml/wxfront/web-auth-get-info2/{openidToken}/{wxid}.thtml?target={target}&r='+Math.random();
			auth_url=auth_url.replace("{wxid}",this.wxid);
			//alert(auth_url);
			var redirect_url=auth_url.replace("{openidToken}",openidToken);


			if(null==target||undefined==target||''==target) target=window.location.href;
			//console.log("目标链接是："+target);

			target=encodeURIComponent(target);
			//console.log("目标链接是(编码后)："+target);
			redirect_url=redirect_url.replace("{target}",target);
			console.log("目标链接是："+target+"目标链接是(编码后)："+target+"redirect_url:"+redirect_url);
			return redirect_url;

 };//end of getAuthUrl


WxTool.prototype.getAuthUrl2=function(openidToken,target){//静默授权
			var auth_url=weione_basePath+'/wxhtml/wxfront/web-auth-get-openid2/{openidToken}/{wxid}.thtml?target={target}&r='+Math.random();
			auth_url=auth_url.replace("{wxid}",this.wxid);
			//alert(auth_url);
			var redirect_url=auth_url.replace("{openidToken}",openidToken);


			if(null==target||undefined==target||''==target) target=window.location.href;
			//console.log("目标链接是："+target);

			target=encodeURIComponent(target);
			//console.log("目标链接是(编码后)："+target);
			redirect_url=redirect_url.replace("{target}",target);
			console.log("目标链接是："+target+"目标链接是(编码后)："+target+"redirect_url:"+redirect_url);
			return redirect_url;

 };//end of getAuthUrl




 /**
     调用方法
	 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
	 2._wxTool.getOpenidToken();

	  获取openidToken
    * @return openidToken
*/
WxTool.prototype.getOpenidToken=function(){
		//alert(weione_basePath);
			if(isWxTest()){
				console.log("测试模式，openToken=test"+"weione_basePath:"+weione_basePath);//
				return "test";
			}



			//var openidToken=localStorage.getItem(this.wxid+'@'+this.getVer()+"openidToken",openidToken);//
			var openidToken=localStorage.getItem(this.wxid+'@'+this.getVer()+"openidToken");//

			//console.log("old openidToken:"+openidToken);
			//alert("old openidToken:"+openidToken);
			if(undefined==openidToken||null==openidToken||''==openidToken){
					openidToken=this.newOpenidToken();
			}
			console.log("getOpenidToken-openidToken:"+openidToken);
			//alert("getOpenidToken-openidToken:"+openidToken);
			return openidToken;

 };//end of getOpenidToken

 /**
     调用方法
	 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
	 2._wxTool.newOpenidToken();

	 重新创建 openidToken
	 @return openidToken
*/
WxTool.prototype.newOpenidToken=function(){
   // return 'test';
			//var openidToken=this.wxid+'@'+Math.uuidFast().replace(/-/g, "")+""+new Date().getTime();//token 中不能有-
			if(isWxTest()) return "test";

			var openidToken=guid();
			localStorage.setItem(this.wxid+'@'+this.getVer()+"openidToken",openidToken);//
			console.log("new openidToken:"+openidToken);
			return openidToken;

 };//end of getOpenidToken


WxTool.prototype.clearOpenidToken=function(){
    localStorage.removeItem(this.wxid+'@'+this.getVer()+"openidToken");//

};//end of getOpenidToken


 /**

	  设置分享
	* @param imgUrl 分享图片地址
	  @param title 分享标题地址(非必填，默认为当前标题)
	  @param content 分享内容(非必填)
    * @return 分享url（非必填，默认为当前url）

*/
WxTool.prototype.setShare=function(imgUrl,title,content,url){
		console.log('wxShare=> '+'imgUrl='+imgUrl+';'+'title='+title+';'+'content='+content+';'+'url='+url)
		if(undefined==title||null==title||''==title){
				   title = document.title;
			 }

			 if(undefined==content||null==content||''==content){
				content='';
			 }


			 if(undefined==url||null==url||''==url){
				 url=window.location.href;//使用当前url为分享链接

			 }

 			if(undefined==imgUrl||null==imgUrl||''==imgUrl){
				 imgUrl=weione_share.imgUrl;//使用当前url为分享链接

			 }

			 this.shareUrl=url;//分享的url链接
			 //解析enterId

		   	var now=new Date();
		   	var jsapi_ticket_ver=now.getYear()+''+now.getMonth()+''+now.getDate()+''+now.getHours();//每小时变化一次
		   	 //console.log(now.getYear());
				// console.log(jsapi_ticket_ver);

			 //console.log()
			// weione_share_url=weione_share_url.replace("{wxid}",this.wxid);
			 // String title,String imgUrl,String url,String content,

			 /**

			var weione_share_url=weione_basePath+'/wxhtml/wxinterface/JSSDK-share/{wxid}.thtml?rr='+Math.random();
			 weione_share_url=weione_share_url.replace("{wxid}",this.wxid);
			 // String title,String imgUrl,String url,String content,
			 weione_share_url+="&title="+title;
			 weione_share_url+="&imgUrl="+encodeURIComponent(imgUrl);
			 weione_share_url+="&url="+encodeURIComponent(url);
			 weione_share_url+="&content="+content;
			 console.log(weione_share_url)
			 var wxtool2=this;
			  $.getScript(weione_share_url, function() {
				  console.log("Load JSSDK-share  was performed.");
			 });

			 ***/


 			weione_share.title=title;
			 weione_share.desc=content;
			 weione_share.desc=content;
			 weione_share.link=url;
			 weione_share.imgUrl=imgUrl;

			 var wxshare2=this;
			  $.getScript(jsapi_ticket_url+"?v="+jsapi_ticket_ver, function() {
				 // console.log("Load jsapi_ticket was performed.");

				  weione_weixin.timestamp=new Date().getTime()/1000;
				 // weione_weixin.nonceStr=Math.uuidFast().replace(/-/g, "");
				    weione_weixin.nonceStr=guid();

				  //
				  var str='jsapi_ticket='+jsapi_ticket.ticket;
				  str+='&noncestr='+weione_weixin.nonceStr;
				  str+='&timestamp='+weione_weixin.timestamp;
				  str+='&url='+window.location.href;//签名用的url必须是调用JS接口页面的完整URL。
				 // console.log('加密前：'+str)

				  var sha = hex_sha1(str);
				  weione_weixin.signature=sha;
				  wxshare2.reload();

			 });

			 /***vue 不支持hex_sha1 ，先注释 begin     vue 不支持hex_sha1 ，先注释 end ***/

 };//end of setShare
 WxTool.prototype.reload=function(){
	//console.log('分享加载开始');
	wx.config({
	    // 开启调试模式,调用的所有api的返回值会在客户端alert出来，
	    //若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
	    debug: false,
	    appId: weione_weixin.appId, // 必填，公众号的唯一标识
	    timestamp:weione_weixin.timestamp , // 必填，生成签名的时间戳
	    nonceStr: weione_weixin.nonceStr, // 必填，生成签名的随机串
	    signature:  weione_weixin.signature,// 必填，签名，见附录1
	    // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
		 jsApiList : [ 'checkJsApi', 'onMenuShareTimeline',
						'onMenuShareAppMessage', 'onMenuShareQQ',
						'onMenuShareWeibo', 'openLocation', 'getLocation' ]
	});

	wx.error(function(res){
		 //alert('JSSDK验证失败');
		 console.log('-------------JSSDK验证失败------------');
	});
	wx.ready(function(){
	    // 如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。
	    //对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
	   // alert('信息验证后会执行ready方法');
	    //下面为分享示例
	    // 2. 分享接口
			// 2.1 监听“分享给朋友”，按钮点击、自定义分享内容及分享结果接口
			wx.onMenuShareAppMessage( {
				title : weione_share.title,
				link : weione_share.link,
				imgUrl : weione_share.imgUrl,
				desc : weione_share.desc,
				type : '', // 分享类型,music、video或link，不填默认为link
				dataUrl : '', // 如果type是music或video，则要提供数据链接，默认为空
				success : function() {
					try {
						shareHandle('frined');//2018年5月25日09:59:30 可惜已经被微信禁用了
					}catch(e){
						console.log('分享回调警告'+e);
					}
				},
				cancel : function() {
					//alert('分享朋友失败');
				}
			 });

			// 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口


			wx.onMenuShareTimeline( {
				title : weione_share.title,
				link : weione_share.link,
				imgUrl : weione_share.imgUrl,
				success : function() {
						try {
							shareHandle('frineds');//alert('分享朋友圈成功');
						}catch(e){
							console.log('分享回调警告'+e);
						}
					},
					cancel : function() {
						//alert('分享朋友圈失败');
					}
			});

			// 2.4 监听“分享到微博”按钮点击、自定义分享内容及分享结果接口
			wx.onMenuShareWeibo( {
				title : weione_share.title,
				link : weione_share.link,
				imgUrl : weione_share.imgUrl,
				desc : weione_share.desc,
				success : function() {

					try {
							shareHandle('weibo');//alert('分享微博成功');
					}catch(e){
						console.log('分享回调警告'+e);
					}

				},
				cancel : function() {
					//alert('分享微博失败');
				}
			});

	});//end of  wx.ready

}//end of function  reload

 /**
     禁止分享
*/
WxTool.prototype.setNoShare=function( ){


			 this.setShare('',document.title,'',weione_basePath);//直接到首页
			 return;



			 var  url=window.location.href;//使用当前url为分享链接



			 var weione_share_url=weione_basePath+'/wxhtml/wxinterface/JSSDK-noshare/{wxid}.thtml?rr='+Math.random();
			 weione_share_url=weione_share_url.replace("{wxid}",this.wxid);

			// var sourceId=this.getUrlParam(url,"enterId");//原enterId，现在是sourceId
			// var accessId=this.getAccessId();//新的enterId
			// url=this.createShareUrl(accessId,window.location.href);


			 var wxtool2=this;
			  $.getScript(weione_share_url, function() {
				  console.log("Load share was performed.");



			 });
}//end of function


WxTool.prototype.getUrlParam=function(url,name) {
		url=url.substring(url.indexOf("?")+1,url.length);
        //alert(url);
		for(var i=0;i<url.split("&").length;i++){
			var p=url.split("&")[i].replace("#","");
			var n=p.split("=")[0];
			var v=p.split("=")[1];
			// alert(name+"="+v);
			//if(n==name) return v;
			if(n==name) return decodeURIComponent(v);

		}
		return '';
};//end of  function


WxTool.prototype.downloadImage=function(serverId) {
		//alert('XlDYtTOKpjuAIm32zo6jjRM29Kqpe3ztMZk5c6VCahPhoL1g9v3GqdyKAKXOOVwn');
		wx.downloadImage({
			serverId: serverId, // 需要下载的图片的服务器端ID，由uploadImage接口获得
			isShowProgressTips: 1, // 默认为1，显示进度提示
			success: function (res) {
			var localId = res.localId; // 返回图片下载后的本地ID
			}
		});
};//end of  function
WxTool.prototype.previewImage=function(current,urls) {
		if(undefined==urls||''==urls||null==urls){
			urls = new Array()
			urls[0] = current;

		}
		wx.previewImage({
			current: current, // 当前显示图片的http链接
			urls: urls // 需要预览的图片http链接列表
		});
};//end of  function

/**
 * 获取访客ID（unique visitor）
 */
WxTool.prototype.getUVId=function(){


			var key=this.wxid+'@'+this.getVer()+"UVId";
			var UVId=localStorage.getItem(key);//

			if(undefined==UVId||null==UVId||''==UVId){
					UVId="UVId"+guid().substring(0,32);
					localStorage.setItem(key,UVId);//
					console.log("create UVId:"+UVId);
			}

			//alert("getOpenidToken-openidToken:"+openidToken);
			return UVId;

 };//end of getUVId

//  var _wxTool=new WxTool("rvone");



/************2020年9月3日10:24:21 增加 v3 begin ***********/
/******
 * 使用方法
 _wxTool.auth3();
 alert(	 _wxTool.getUser3().openid);
 */


/**
 调用方法
 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
 2._wxTool.auth3();
 3.稍后（由于是异步调用）可通过_wxTool.getUser() 获取json用户信息

 检验用户授权情况，如果没授权则根据target 跳转 (可选，默认情况下是当前链接 )
 * @param target (可选，默认情况下是当前链接 )目标链接地址（未编码），如：http://wwww.interentyu.com
 @param async true 异步（默认）（不会立刻返回值，需要以后根据_wxTool.getUser() 获取 ）, false 非异步，可以直接返回信息
 * @return async==false时方返回信息
 */
WxTool.prototype.auth3=function(target,async){
  // alert();

  if(isWxTest()){
    console.log("返回伪造的用户信息");

    return this.getFakeUser();
  }

  var retval=null;
  var wxid=this.wxid;

  //console.log("验证是否已经微信授权begin"+wxid  +"&async="+async);
  if(undefined==async||null==async){//||''==async 对于boolen值 false==''
    //console.log("??");
    async=true;
  }
  //	console.log("验证是否已经微信授权begin"+wxid  +"&async="+async);
  var openidToken= this.getOpenidToken();
  //console.log("验证是否已经微信授权-openidToken:"+openidToken);

  var curr_obj=this;

  var url = '/wxhtml/v3/wxfront/get-user-info.thtml?r='+Math.random();
  console.log("验证是否已经微信授权-openidToken:"+openidToken+"url"+url);
  var param={'openidToken':openidToken,'random':Math.random()};
  var auth_url=this.getAuthUrl3(openidToken,target);
  $.ajax({
    type: "POST" ,
    //contentType: "application/json", 默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
    url: url,
    async:async,//async:false, false 非异步
    data: param ,
    timeout: 30000, //超时时间：30秒
    dataType: 'json',
    error: function (XMLHttpRequest, textStatus, errorThrown){
      console.log('textStatus：'+textStatus);//js 日志
      //TODO: 处理status， http status code，超时 408
      // 注意：如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能
      //是"timeout", "error", "notmodified" 和 "parsererror"。
    },
    success: function(ret) {
      if("0"!=ret.code){//重新微信授权
//									alert("重新授权");
        console.log("auth_url："+auth_url);
        //alert();
        //	return;
        window.location.href=auth_url;
        retval=false;

      }else{

        //alert('ok');
        console.log("ok:"+openidToken);

        try{
//								 	alert("用户信息："+ret.data.user);
          curr_obj.user=ret.data.user;
          // console.log("成功获取用户信息_wxTool.getUser():"+curr_obj.getUser());
        }catch(e){
          console.log("获取用户信息异常:"+e);
        }
        retval=true;

        //console.log("获取会员信息");
        // curr_obj.getMember();//

      }//end of if-else
    }//end of success
  });//end of jQuery.ajax

  if(false==async){
    console.log('同步调用返回值'+retval);//js 日志
    return 	retval;
  }

};//end of auth


/**
 调用方法
 1.创建对象（创建一次即可） var _wxTool=new  WxTool(wxid);
 2._wxTool.getAuthUrl(openidToken,target);


 获取授权链接地址
 * @param openidToken 用户token
 @param target (可选，默认情况下是当前链接 )目标链接地址（未编码），如：http://wwww.interentyu.com
 * @return 授权url地址
 */
WxTool.prototype.getAuthUrl3=function(openidToken,target){
  var auth_url=weione_basePath+'/wxhtml/wxfront/web-auth-get-info3/{openidToken}/{wxid}.thtml?target={target}&r='+Math.random();
  auth_url=auth_url.replace("{wxid}",this.wxid);
  //alert(auth_url);
  var redirect_url=auth_url.replace("{openidToken}",openidToken);


  if(null==target||undefined==target||''==target) target=window.location.href;
  //console.log("目标链接是："+target);

  target=encodeURIComponent(target);
  //console.log("目标链接是(编码后)："+target);
  redirect_url=redirect_url.replace("{target}",target);
  console.log("目标链接是："+target+"目标链接是(编码后)："+target+"redirect_url:"+redirect_url);
  return redirect_url;

};//end of getAuthUrl



WxTool.prototype.getUser3=function(){
  if(isWxTest()){
    console.log("返回伪造的用户信息");

    return this.getFakeUser();
  }



  if(null!=this.user) {
    console.log("直接返回user信息");
    //headimgurl
    //http://wx2.yutong.com/thirdwx/mmopen/mxKxVO0BssQ6GRIdgUQNYicP7QBXtGQYYk4bhz7lYYjhiaHoPcjPxe0cF4rhaF7RWlPz0cqX42A5BS8Qt09icbryUL6ElN9aUu3/132
    // this.user.headimgurl=this.user.headimgurl.replace('http://thirdwx.qlogo.cn','http://wx2.yutong.com/thirdwx');
    return this.user;
  }else{
    var openidToken= this.getOpenidToken();
    console.log("验证是否已经微信授权-openidToken:"+openidToken);
    //alert("openidToken=="+openidToken);
    var user_tmp=null;

    var url = '/wxhtml/v3/wxfront/get-user-info.thtml?r='+Math.random();
    var param={'openidToken':openidToken,'random':Math.random()};
    var curr_obj=this;
    $.ajax({
      type: "POST" ,
      //contentType: "application/json", 默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
      url: url,
      async:false,//async:false, false 非异步
      data: param ,
      timeout: 30000, //超时时间：30秒
      dataType: 'json',
      error: function (XMLHttpRequest, textStatus, errorThrown){
        console.log('textStatus：'+textStatus);//js 日志
        //TODO: 处理status， http status code，超时 408
        // 注意：如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能
        //是"timeout", "error", "notmodified" 和 "parsererror"。
      },
      success: function(ret) {
        //alert(ret.code);
        if("0"!=ret.code){//重新微信授权

          user_tmp=null;

        }else{

          //alert('ok');
          //console.log("ok:"+openidToken);
          //alert(JSON.stringify(ret.data.user));
          try{
            user_tmp=ret.data.user;
            // user_tmp.headimgurl=user_tmp.headimgurl.replace('http://thirdwx.qlogo.cn','http://wx2.yutong.com/thirdwx');
            //console.log("成功获取用户信息:");
          }catch(e){
            console.log("获取用户信息异常:"+e);
          }


        }//end of if-else
      }//end of success
    });//end of jQuery.ajax
    //alert("先弹出？");
    curr_obj.user=user_tmp;
    return user_tmp;


  }

}
/************2020年9月3日10:24:21 增加 v3 end ***********/
//export default WxTool
var _wxtool = new WxTool("zp");






